#include <iostream>

namespace unique_ptr_ns
{
    template <class T>
    class unique_ptr
    {
    public:
        //构造
        unique_ptr(T *ptr)
            : _ptr(ptr)
        {
        }

        //析构
        ~unique_ptr()
        {}

        //重载->
        T* operator->()
        {
            return _ptr;
        }
        //重载*
        T& operator*()
        {
            return *_ptr;
        }

        //防拷贝:禁赋值和传值构造
        unique_ptr(const unique_ptr<T> &sp)=delete;
        unique_ptr<T>& operator=(const unique_ptr<T> &sp)=delete;
    private:
        T *_ptr;
    };
}
int main()
{
    return 0;
}